home *** CD-ROM | disk | FTP | other *** search
/ BMUG Revelations / BMUG Revelations.toast / Programming / Programming Languages / Yerk 3.64 / modifications < prev    next >
Text File  |  1993-06-27  |  17KB  |  447 lines

  1. Version History of Yerk
  2.  
  3. ----Neon 2.0----
  4.  
  5. New methods:
  6.  
  7. Control
  8.     setTitle( addr len --), getTitle( -- addr len), getnew(id wind --)
  9.     enable: disable:
  10.     box size in y decreased by 3 pixels
  11.  
  12. handle
  13.     unlock(-), lock(-), movehi(-), locked?(-b)
  14. event
  15.     zoombox supported
  16. file
  17.     flushVol (-)
  18.  
  19. base - extend is faster, >uc fixed
  20.  
  21. nucleus
  22.     ic! fixed, (.stack) protected, cmove replaced with blockmove trap
  23.  
  24. fargs
  25.     fixed ;m
  26. fltmem
  27.     fixed 2dup
  28.  
  29. indlg
  30.     draw: fwind removed from each dlg
  31.     added remembers current cursor
  32. tools
  33.     supports macII-increased table lengths and collision table cell size
  34. decompile
  35.     fixed float bug, .num shows signs, contains your own methods
  36. qprint
  37.     shows revision date
  38. date
  39.     init: removed-no longer needed - must get: then print:
  40.  
  41. port
  42.     kill:
  43. timer
  44.     clear: 
  45.  
  46. alert!
  47.     returns button item# for which button was pressed
  48.  
  49. hfs? now works
  50.  
  51. nucleus may have fwind not visible, but the word neon performs a show: fwind.
  52.   If you don't want fwind around at startup, don't say a thing to it and set
  53.   the visible flag using resedit.
  54.  
  55. When a menu Item is selected, both the item number and menuId are stored
  56.    into values mitem and menuID.
  57.  
  58. -------------
  59.  
  60. This version of Neon is called Yerk 3.1 for now. The nucleus has been modified
  61. to provide a multifinder aware application.
  62.  
  63. There was an inconsistency in the numbering scheme for menu items in Neon...
  64. notably between check, uncheck, set, get methods. They are now all consistent,
  65. with the first item being item #1.
  66.  
  67. -----------------
  68.  
  69. source menu has support for hierarchichal menus and popups.
  70. extra methods in class menu
  71. applemenu defined to support infinite number of items
  72. addone: menubar and remove: menubar - 24 menus in menubar
  73. disable and enable menubar prettier
  74.  
  75. loading now can occur in background
  76.  
  77. struct1 included in nuc(no longer option). warray, wordcol, barray, bytecol.
  78.  
  79. farray fixed fltAt and fltTo to check for ivars
  80.  
  81. dialog has frame: show: methods, so that the dialog window can come
  82.   up invisible for drawing many things, then say show:...looks nicer
  83.  
  84. theMenu added, that holds the menu addr of the last menu selected.
  85.  
  86. disk event now checks for initialization needs
  87.  
  88. =: string modified to lock source
  89. concat: string added
  90. moveHHi added before lock: handle in Struct source as IM suggests
  91.  
  92. bytecol and wordcol now identify negative numbers (are not unsigned)
  93. NOT ANYMORE>>>
  94.  
  95. drvr close: now calls kill: first
  96. serial added baudrate, xon, break buffer, status: and bytesIn:
  97.  
  98. ----
  99.  
  100. savesig finds app signature
  101. handle has getstate: and setstate: methods
  102. string uses hgetstate and hsetstate for concat: and =:
  103. module exam works over application memory space
  104. module env has more imports for appletalkon, hascolor and hasfpu
  105. added +to: for farray
  106. neon folder no longer should have ™
  107.  
  108. COULD ADD GETSTATE,SETSTATE TO PUT:, ADD:, REPLACE: IN BASICSTR???
  109.  
  110. nucleus checks for waitNextEvent and cpu cache
  111. barray and warray now use ++2 and ++1 for faster operation in +to:
  112.  
  113. savesig now gets owner automatically, so that whatever nucleus is running
  114. provides the owner name
  115.  
  116. modified decompile module so that de' word/module is now de' word|module
  117. so that words with / could be decompiled.
  118.  
  119. added userItem class to dialog.
  120.  
  121. :M redefined to show 'method redefined' before the method (for clarity)
  122.  
  123. fixed locked?: method to call hgetstate
  124.  
  125. removed initfont from new: control (and getnew)
  126.  
  127. ----Yerk 3.3.0-----
  128.  
  129. modified pathList by using sArray. Path is now an object of sarray. Changed
  130.   class File, and source grep to reflect change. There is no longer a class
  131.   called pathlist.  sArray holds an array of str255 types.
  132.  
  133. added do' (object of class) : is to doolist as de' is to dode
  134.  
  135. ' modified :proc to give large stack (necessary for 8 bit deep color monitor)
  136.  
  137. Changed 2dArray in asm code to be loaded at compile time, and is much faster
  138.   (30%) at compiling code. Data is in dictionary, not on heap.
  139.  
  140. ----Yerk 3.3.1----
  141.  
  142. modified savesig
  143.  
  144. revised bold fonts in // so 9 pt chicago not loaded
  145.  
  146. class window now erases grow box when grown
  147. delete now erase cursor if +curs is set
  148.  
  149. slight change stop: timer
  150.  
  151. slight cosmetic change to (.mod)
  152.  
  153. added negate: to class Int
  154.  
  155. fixed slight bug in decompile (for floats)
  156.  
  157. ----Yerk 3.3.2----
  158.  
  159. ?lines changed in nuc to keep bottom line on screen
  160. and grow: method in window changed to send current line to bottom
  161.   if grow shortened window.
  162.  
  163. fixed to: problem in pathList source for sarray
  164.  
  165. -----------------------
  166.  
  167. ----Yerk 3.5----
  168.  
  169. Semi-major revision to system 7. Nucleus has changed with two
  170. code resources.
  171.  
  172. Install module now works.
  173.  
  174. recoded (@) and newptr in case heap is below dictionary.
  175.  
  176. Fixed >ptr in nucleus to use either stripaddress or lo3bytes depending on
  177. whether stripaddress is resident in system.
  178.  
  179. Added value 'hasGestalt'
  180.  
  181. Added konstant module...use 'konstant xxxx' to get value of mac equates.
  182.  
  183. Tool module now uses 4 byte hash..no collisions
  184.  
  185. No longer need large newptr in frontend, since kernal now calls maxapplzone
  186.  
  187. 'type now does not convert to upper case. This is needed for system 7 since
  188. it uses many lower case 'types.
  189.  
  190. Fevent increased to handle high level events, but the handlers are not installed yet.
  191.  
  192.  
  193. ----Yerk 3.6----
  194.  
  195.  
  196. changed window source to handle grow box better..
  197. also eliminated nonScrollWind class and followed Michael Hore's example, making the
  198.   option to set fpRect by an IVAR of window
  199. Several new methods have been added to window...setLimits:, setZoom:, setScroll, and
  200.   others. Check the source for all of them. SetZoom allows the addition of a user
  201.   supplied zoombox word (for multiple screen support).
  202.  
  203. slight modification of nucleus..cleaned up in places. Also, added a bit to the
  204.   CODE 1 resource to recognize whether the program is a standalone app or just a
  205.   development document.
  206.  
  207. Added resource to load in ontop of floating point part of the dictionary during
  208.   development save. This is required because of system 7.0.1 writing over pack4 calls.
  209.   StdSave is therefore redefined. Not necessary for <7.0.1, althought it doesn't hurt.
  210.   Adds about 5k to yerk.rsrc. Also, this is not necessary for standalone application,
  211.   since you don't do a stdsave on an application. IF YOU RECOMPILE YERK, REMEMBER THAT
  212.   THE YERK.RSRC FILE IS MODIFIED, AND YOU NEED TO DELETE OLDER COPIES.
  213.  
  214. Install now works well. You have to think about how the application is going to
  215.   work as opposed to how it worked as a development environment.  Eliminate all
  216.   openrsrc calls (I patch the old ones [to null]), use menus in resources, don't
  217.   read in a path file, and get rid of some of the unnecessary words in your
  218.   development startup word. Then run the install module, setting the
  219.   various words appropriately. Certain modules will load as Code resources, and
  220.   you may delete those you don't need with resedit.  Add any other resources you
  221.   need from the development resource files, and you are ready to go. [see
  222.   the note 'install.txt' included with the distribution -  note that
  223.   the manual is not updated to reflect these changes]
  224.  
  225. Added Hierarchy menu item...prints the class chain of an entered class. Source in util mod.
  226.  
  227. Added stack space in :Proc. I've found that under sys 7, more stack space was necessary,
  228.  particularly using dialogs, scrollbars, etc. If an crash happens when you are
  229.  using a scrollbar (arrow or gray rgn), try increasing the stack size in Pstart.
  230.  This may be done by patching pstart for future compilations, and the proc 'ctlproc',
  231.  which is the called procedure during dragControl.
  232.  
  233. Fixed /mod to yield negative values. Propogated fix in appropriate sources (adding abs
  234.   to ignore negative values).
  235.  
  236. Added abort load (hit space key) when loading a file with echo off.
  237.  
  238. Fixed bug in decompile.
  239.  
  240. modified userItem in dialog.
  241.  
  242. // now can be stopped by hitting a key even if not echoing.
  243.  
  244. ---note: not all system 7 calls are set up to work yet. The next version of Yerk will
  245.          have the 'call' word intelligent where it will set up the inline toolkit
  246.          calls correctly for all types of traps (dispatched, etc).
  247.          So be alert using the new system 7 traps. Get IM VI to be sure.
  248.  
  249.  
  250. ----Yerk 3.6.1----
  251.  
  252. added getnew: to rsrcWind to make sure WIND rsrc is marked non purgeable if
  253.     savePosition IVAR is true. This is because a call to GetNewWindow sets
  254.     the purge bit of the rsrc when called.
  255.  
  256. Fixed a problem with savesig. The original definition used loadfile.
  257.     Remove: loadfile closes the file, which in the case of a standalone
  258.     application will close the resource fork!
  259.  
  260. ----Yerk 3.6.2----
  261.  
  262. changed the way getnew: methods work...now all resource id's are stored as IVARS.
  263. Getnew: doesn't require an id on the stack....THIS MEANS OLDER CODE MUST BE CHANGED
  264. IF YOU USED RESOURCE ID's.
  265.  
  266. Fixed super/self problem with decompile.
  267.  
  268. added alive: method to dialog class
  269.  
  270. exam module window drags over all grayrgn
  271.  
  272. added put: farray get: farray
  273.  
  274. added getName: checkone: methods to Menu class. Checkone: unchecks all items but one.
  275.    getname: gets name of menu.
  276.  
  277. Flush cache for 030 and 040 machines at words TRAP, :PROC, and (FDOS). Also added
  278. word CFLUSH in nucleus.
  279.  
  280. added ptin: method to Rect
  281.  
  282. simplified fill: method in class String
  283.  
  284. modified Window so that command key option works as in IM
  285.  
  286. modified :Proc to grab a5 and a3 from a resource loaded at startup in nucleus
  287. :proc now knows the proper value of a5 and a3.
  288.  
  289. Also rewrote Time Manager and VBL Manager (in Supplement/Mystuff) to be
  290. a5,a3 aware.
  291.  
  292. modified exam module to display higher addresses due to virtual memory
  293.  
  294. The install module is modified so that you may select those modules
  295. you want installed within your application. You may want some standard
  296. Yerk ones, your own, or none at all.
  297.  
  298. ----Yerk 3.6.3---------
  299.  
  300. Fixed a bug that happened after doing a stdSave in YerkFP.com. Once this was executed,
  301. if you tried to compile code that used floating point constants, yerk would bomb.
  302. Now you can take a snapshot of the environment and continue to work without having to
  303. exit and reenter.
  304.  
  305. Fixed a bug in (fdos) that affects 68030 and 040 chips.
  306.  
  307. ----Yerk 3.6.4--------
  308.  
  309.  
  310.  ****** the following four changes mean you might have to change your sources to comply.
  311. Eliminated 'sony', 'profile', and 'external' from dictionary.
  312. Menus now in resources..getmtxt and module will no longer be supported in Yerk
  313. Changed 'getname: pmenu' to getHItemName, so can use super method
  314. Changed set: menu to have stack consistent with sarray input to:  (addr len index)
  315.  
  316. Include a message during compile to name the redefined object.
  317.  
  318. fmax, fmin added to dictionary
  319.  
  320. Added checked?: to Menu to tell if a menu item has been checked or not
  321.  
  322. Added method portBit: to window and dialog class
  323.  
  324. :Proc redefined for better a5,a3 support; removed MYA5 resource
  325.  
  326. Modified source 'ovl' to set a5,a3 in any :proc words in modules
  327.    There is now a word, initProcs, that should be included in your
  328.    startup word. It will initialize all proc words in the code with
  329.    the current A5 and A3 values. When a module is loaded, it will
  330.    be searched for proc words and they too will be initialized automatically.
  331.  
  332. Added ?rdepth switch (+rdepth, -rdepth) for execution of :proc word in background.
  333.    If the yerk program is running in the background and a completion routine
  334.    is executed, A5, and A3 are handled properly, but there is a check
  335.    for rdepth to be in a certain range. This could lead to problems
  336.    since the new rstack is set up on the current stack, wherever that is.
  337.    So, to be safe, turn the check off (-rdepth) until the completion is done.
  338.  
  339. VBL and TimeManager support
  340.  
  341. Added frame: dialog to draw default frame around the control at will
  342.  
  343. ffcb in nucleus now large enough to be real file object
  344.  
  345. Protect stack from getting more floats that floatmem allows
  346.  
  347. SysEdits now supports key: window; cut,copy,paste for the front window
  348.  
  349. Added listing of objects in .clist
  350.  
  351. Added 'part' as parameter for zoom handler...Used to have to use
  352.      mp2 to get zoom state from methods stack
  353.  
  354. Lock string down before printing. Also test for handle state and unlock if
  355.      necessary for replace.
  356.  
  357. Added ?ishandle to nucleus and valid: to handle so now you can check a handle to see
  358.    if it is valid. New method Valid: handle. Release: menu checks valid handle first.
  359.    NOTE THAT THIS IS NOT 100% EFFECTIVE..among other tests, it calls RecoverHandle
  360.    which can cause a Bus Error in a few instances. I'll leave this in for now
  361.    to see how good it is....if we never see bombs, then I'll keep it for future
  362.    versions. The best way to handle deallocated handles is to zero them afterwards.
  363.    However, because of saving images of your work, when you bring an image back
  364.    there will be non zero handles in things which are not allocated. This is why
  365.    we need a check for valid handles. If anyone has a better idea as to how
  366.    to do this, please let me know.
  367.  
  368.  
  369. Added a module that echos output (if +file is set) to a file whose
  370.   default name is logfile. This file is written to the yerk folder. You
  371.   may type '+file' within the interpreter or select the 'Echo to Log'
  372.   item in the Yerk menu. If you hold the option key down while
  373.   selecting the menu item (or hitting return for +file), the standard file
  374.   dialog box appears and allows you to set a different file name. Notice
  375.   that the log file is appended to. +file, -file, tofile import words from logmod.
  376.   'tofile' is not yet defined.
  377.  
  378. Gestalt support in nucleus. gestalt returns -- code 0 or errcode (<0). A return
  379.   of -1 means gestalt is not supported under the current Mac OS.
  380.  
  381. Added arcsin, arccos to yerkFP.com
  382.  
  383. (nevent) automatically loaded into nevent during compile - this is so
  384.    compiling can process events and can therefore continue in the background.
  385.  
  386. Timer now has sync: method to wait till tic counter changes
  387.  
  388. Added 0 DTR: to Open: for serial ports to take care of powerbook anomoly
  389.  
  390. Recoded hopen: and orf in File source to lock strings used at appropriate times
  391.    to fix occasional improper path formations due to memory moves
  392.  
  393. Protect getnew: for dialog, ctl, picture, icon classes
  394.  
  395. Decompile now decompiles the contents of vects, values, and sysvects, if applicable.
  396.  
  397. Modified getstring to not open yerk.rsrc file. If string not found, abort.
  398.  
  399. Install process no longer deletes Yerk nucleus. Its resources are copied
  400.    into the new application. Also fixed bug so Install module works for
  401.    both yerkFP.com and yerk.com.
  402.  
  403. New word 'saver' replaces 'doSave' in the file menu. Saver will save the
  404.    current dictionary in its current folder with the current name. It will
  405.    replace any older version by the same name.
  406.  
  407. When saving the dictionary, you used to have to close all windows except the
  408.    fwind before saving. If you didn't do this, when you next launch your
  409.    dictionary, you could not open the windows since they were marked as open
  410.    when you saved the image. Now, you no longer have to close the windows...
  411.    each window is automatically marked as closed before saving, and then
  412.    unmarked afterwards.
  413.  
  414. Added '8*' to kernel, 'within' to yerk.com, and removed '?decimal'.
  415.  
  416. Added setHSize!: to handle to set the size even if the handle is locked...it
  417.    leaves the handle locked after the resize.
  418.  
  419. Added file marking into the dictionary for better on-line documentation. If
  420.   +docs is executed, then as you compile new file sources into the
  421.   dictionary, information is stored for each new word. To see the definition
  422.   of a word, type 'see theWord'. A scrollable window
  423.   will appear showing the entire source, with theWord as near to the top
  424.   of the window as possible. -docs turns off the storage. So for development,
  425.   set +docs; for the final version of your code, where you want to save space, set -docs.
  426.   When +docs is set, each filename is stored in the dictionary with a yerk header,
  427.   and each word has its line number stored, which increases the word's length by two bytes.
  428.   Other words are RL for reload file from last load (forgets and reloads last
  429.   file), FM forget to last mark, /// - same a RL but takes a name input and forgets
  430.   and reloads all sources from the named input source - VERY useful in developement.
  431.   MForget will forget all definitions up to the named mark.
  432.  
  433. Nucleus changed to detect whether it is an application or not. Now Install module\
  434.   doesn't need to patch CODE.
  435.  
  436. Nucleus also puts warm start code at ApplScratch, or $A78 in Mac Memory. So
  437.   if you bomb and are using Macsbug, you can say 'g a78' or 'g applscratch'
  438.   from Macsbug and you have a good chance of getting back into Yerk with
  439.   your code intact.
  440.  
  441. Decompile now supports float named input parameters and local variables.
  442.  
  443. CtlWind now supports system 7 popup menus.
  444.  
  445. Fixed bug in hitting scrollbar in ListMan (Install module).
  446.  
  447.